თავი 2. მონაცემების ამორჩევა
წინადადება WHERE
WHERE -ში მიეთითება ჩანაწერების ამორჩევის პირობები. SQL-ის სტანდარტით ამორჩევის პირობაში გათვალისწინებულია 5 ბაზური პრედიკატი: შედარება, BETWEEN, IN, LIKE, IS NULL.
WHERE-ში გამოყენებული შედარების ოპერაციები შემდეგია/ცხრ. 1/:
ცხრილი 1
ოპერაცია აღწერა
= ტოლობა
<> არ არის ტოლი
< ნაკლებობა
<= ნაკლებია ან ტოლი
!< არ არის ნაკლები
> მეტობა
>= მეტია ან ტოლი
!> არ არის მეტი
პრედიკატით BETWEEN განისაზღვრება ორ გამოსახულებას შორის მნიშვნელობათა დიაპაზონი. დიაპაზონის მნიშვნელობათა ქვედა და ზედა საზღვრები ერთმანეთთან დაკავშირებულნი არიან ლოგიკური ოპერატორით AND. მაგალითად a1 between V1 And V2. ეს იდენტურია შემდეგის a1 ≥ V1 AND a1≤V2
IN პრედიკატი გვიჩვენებს ცვლადის მნიშვნელობის თანხევდრას სიის ელემენტებთან. მაგალითად ამორჩეულ იქნეს ის საქონელი, რომელიც ინახება პირველ და მეორე საწყობში. თუ a1 ცვალადით ავღნიშნავთ საწყობის ნომერს, მაშინ პირობა ჩაიწერება a1 IN 1,2
მაგალითი
ამორჩეული იქნეს საქონელი, რომელთა სანომენკლატურო ნომრებია 1 და 2
პროგრამა შემდეგია:
Private Sub Rsek_Click()
Dim kit As String
Me.Lsia.RowSource = ""
kit = "SELECT tbsaqoneli.nomeri, tbsaqoneli.das+' '+'inaxeba sawyobSi'+' '+tbsawyobi.dasaxeleba AS [dasaxeleba], tbsaq_mireba.TariRi,tbsaq_mireba.raodenoba" & _
" FROM tbsawyobi RIGHT JOIN (tbsaqoneli RIGHT JOIN tbsaq_mireba ON tbsaqoneli.nomeri=tbsaq_mireba.saq_nomeri) ON tbsawyobi.nomeri=tbsaq_mireba.saw_nomeri" & _
" WHERE tbsaqoneli.nomeri IN (1,2)"
’ მიაქციეთ ყურადღება IN პრედიკატის ჩაწერის სინტაქსს. თუ შეკითხვას ფორმაზე დატანილი ველიდან ვახორციელებთ მაშინ WHERE პრედიკატი ჩაიწერება შემდეგნაირად:
" WHERE tbsaqoneli.nomeri IN " & V2 & ""
სადაც V2 ფორმაზე დატანილი ველის სახელია. ამ შემთხვევაში V2 ველში შეკითხვა უნდა ჩაიწეროს შემდეგი სინტაქსით <(><მნიშვნელობა><,><მნიშვნელობა><,>….<)>. მაგალითად (1,2)
With Me.Lsia
.ColumnHeads = True
.ColumnCount = 4
.ColumnWidths = "1,5in;5in;1,5in;1,4in"
.RowSourceType = "Table/Query"
.RowSource = kit
End With
End Select
End Sub
IS NULL პრედიკატით მოწმდება გამოსახულების, ცხრილის სვეტის მნიშვნელობის ტოლობა NULL-თან ანუ მნიშვნელობის არრსებობა მოცემულ ველში (ველში მნიშვნელობა ჩაწერილი არ არის).